/**
 * Ingenius-Group S.A.S
 *
 * Project: SAU
 * File: InstrumentsService.java
 * Date: 28/02/2011
 */

package com.ingenius.sau.client.service;

import java.util.List;

import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.ingenius.sau.shared.model.core.SelfEvaluation;
import com.ingenius.sau.shared.model.instruments.Document;
import com.ingenius.sau.shared.model.instruments.Question;
import com.ingenius.sau.shared.model.instruments.Response;
import com.ingenius.sau.shared.util.filter.Filter;

/**
 * Class <strong>InstrumentsService</strong>
 * 
 * @author Jesus David
 * @version 0.1
 */
@RemoteServiceRelativePath("instrumentsService")
public interface InstrumentsService extends RemoteService {

	public Boolean saveOrUpdateDocument(Document document);

	public Boolean deleteDocument(String id);

	public Document getDocument(String id);

	public PagingLoadResult<Document> findDocuments(List<Filter> filters,
			BasePagingLoadConfig config);

	public Boolean saveOrUpdateQuestion(Question question);

	public Boolean deleteQuestion(String id);

	public Question getQuestion(String id);

	public PagingLoadResult<Question> findQuestions(List<Filter> filters,
			BasePagingLoadConfig config);

	public Boolean saveOrUpdateResponse(Response question);

	public Boolean deleteResponse(String id);

	public Response getResponse(String id);

	public PagingLoadResult<Response> findResponses(List<Filter> filters,
			BasePagingLoadConfig config);

	public List<SelfEvaluation> loadAllProcesses();
}
